package com.xyz.practice.jdbc.databasemetadata;

import java.io.Serializable;

public class FunctionColumn implements Serializable {

	private static final long serialVersionUID = 2416865956602345916L;

	FunctionColumn() {
		
	}
	/**
	 * function catalog (may be null)
	 */
	private String functionCat;
	/**
	 * function schema (may be null)
	 */
	private String functionSchem;
	/**
	 * function name. This is the name used to invoke the function
	 */
	private String functionName;
	/**
	 * column/parameter name
	 */
	private String columnName;
	/**
	 * kind of column/parameter: functionColumnUnknown - nobody knows
	 * functionColumnIn - IN parameter functionColumnInOut - INOUT parameter
	 * functionColumnOut - OUT parameter functionColumnReturn - function return
	 * value functionColumnResult - Indicates that the parameter or column is a
	 * column in the ResultSet
	 */
	private short columnType;
	/**
	 * SQL type from java.sql.Types
	 */
	private int dataType;
	/**
	 * SQL type name, for a UDT type the type name is fully qualified
	 */
	private String typeName;
	/**
	 * precision
	 */
	private int precision;
	/**
	 * length in bytes of data
	 */
	private int length;
	/**
	 * scale - null is returned for data types where SCALE is not applicable.
	 */
	private short scale;
	/**
	 * radix
	 */
	private short radix;
	/**
	 * can it contain NULL. functionNoNulls - does not allow NULL values
	 * functionNullable - allows NULL values functionNullableUnknown -
	 * nullability unknown
	 */
	private short nullable;
	/**
	 * comment describing column/parameter
	 */
	private String remarks;
	/**
	 * the maximum length of binary and character based parameters or columns.
	 * For any other datatype the returned value is a NULL
	 */
	private int charOctetLength;
	/**
	 * the ordinal position, starting from 1, for the input and output
	 * parameters. A value of 0 is returned if this row describes the function's
	 * return value. For result set columns, it is the ordinal position of the
	 * column in the result set starting from 1.
	 */
	private int ordinalPosition;
	/**
	 * ISO rules are used to determine the nullability for a parameter or
	 * column. YES --- if the parameter or column can include NULLs NO --- if
	 * the parameter or column cannot include NULLs empty string --- if the
	 * nullability for the parameter or column is unknown
	 */
	private String isNullable;
	/**
	 * the name which uniquely identifies this function within its schema. This
	 * is a user specified, or DBMS generated, name that may be different then
	 * the FUNCTION_NAME for example with overload functions
	 */
	private String specificName;

	String getFunctionCat() {
		return functionCat;
	}

	void setFunctionCat(String functionCat) {
		this.functionCat = functionCat;
	}

	String getFunctionSchem() {
		return functionSchem;
	}

	void setFunctionSchem(String functionSchem) {
		this.functionSchem = functionSchem;
	}

	String getFunctionName() {
		return functionName;
	}

	void setFunctionName(String functionName) {
		this.functionName = functionName;
	}

	String getColumnName() {
		return columnName;
	}

	void setColumnName(String columnName) {
		this.columnName = columnName;
	}

	short getColumnType() {
		return columnType;
	}

	void setColumnType(short columnType) {
		this.columnType = columnType;
	}

	int getDataType() {
		return dataType;
	}

	void setDataType(int dataType) {
		this.dataType = dataType;
	}

	String getTypeName() {
		return typeName;
	}

	void setTypeName(String typeName) {
		this.typeName = typeName;
	}

	int getPrecision() {
		return precision;
	}

	void setPrecision(int precision) {
		this.precision = precision;
	}

	int getLength() {
		return length;
	}

	void setLength(int length) {
		this.length = length;
	}

	short getScale() {
		return scale;
	}

	void setScale(short scale) {
		this.scale = scale;
	}

	short getRadix() {
		return radix;
	}

	void setRadix(short radix) {
		this.radix = radix;
	}

	short getNullable() {
		return nullable;
	}

	void setNullable(short nullable) {
		this.nullable = nullable;
	}

	String getRemarks() {
		return remarks;
	}

	void setRemarks(String remarks) {
		this.remarks = remarks;
	}

	int getCharOctetLength() {
		return charOctetLength;
	}

	void setCharOctetLength(int charOctetLength) {
		this.charOctetLength = charOctetLength;
	}

	int getOrdinalPosition() {
		return ordinalPosition;
	}

	void setOrdinalPosition(int ordinalPosition) {
		this.ordinalPosition = ordinalPosition;
	}

	String getIsNullable() {
		return isNullable;
	}

	void setIsNullable(String isNullable) {
		this.isNullable = isNullable;
	}

	String getSpecificName() {
		return specificName;
	}

	void setSpecificName(String specificName) {
		this.specificName = specificName;
	}

}
